#ifndef TRANSLATEPROMPT_H
#define TRANSLATEPROMPT_H

#include <QString>
#include <QVector>

// 提示信息结构体
struct PromptInfo {
    QString prompt;                    // 翻译提示
    QString chatPrefix;                // 聊天提示前缀
    QString chatSuffix;                // 聊天提示后缀
    QVector<QString> userPromptList;     // 用户提示列表
    QVector<QString> assistantPromptList; // 助手提示列表
};

class TranslatePrompt
{
public:
    // 获取单例实例
    static TranslatePrompt* getInstance();
    
    // 获取提示信息
    PromptInfo getPrompt() const { return m_promptInfo; }
    
    // 保存提示信息到JSON文件
    bool save(const QString& filePath);
    
    // 从JSON文件加载提示信息
    bool load(const QString& filePath);
    
    // 修改提示信息
    void changePrompt(const QString& prompt,
                     const QString& chatPrefix,
                     const QString& chatSuffix,
                     const QVector<QString>& userPromptList,
                     const QVector<QString>& assistantPromptList);
    
    // 恢复默认值
    void resetToDefault();

private:
    TranslatePrompt();
    ~TranslatePrompt();
    
    // 禁用拷贝构造和赋值操作
    TranslatePrompt(const TranslatePrompt&) = delete;
    TranslatePrompt& operator=(const TranslatePrompt&) = delete;
    
    // 初始化默认提示信息
    void initDefaultPrompt();
    
    static TranslatePrompt* instance;
    PromptInfo m_promptInfo;
};

#endif // TRANSLATEPROMPT_H 